package com.kang.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.kang.pojo.ReturnOrderItem;

/**
 * 退货订单物品信息持久层
 * 
 * @author zs614
 *
 */
public interface ReturnOrderItemMapper {
	/**
	 * 删除退货订单物品信息
	 * 
	 * @param id
	 *            退货订单物品信息ID
	 * @return
	 */
	int deleteByPrimaryKey(Integer id);

	/**
	 * 插入退货订单物品信息
	 * 
	 * @param record
	 *            退货订单物品信息实体类
	 * @return
	 */
	int insertSelective(ReturnOrderItem record);

	/**
	 * 根据ID查询退货订单物品信息
	 * 
	 * @param id
	 *            退货订单物品信息ID
	 * @return
	 */
	ReturnOrderItem selectByPrimaryKey(Integer id);

	/**
	 * 根据物品来源于退货订单ID查询退货订单物品信息
	 * 
	 * @param returnOrderID
	 *            退货订单ID
	 * @param sourceID
	 *            物品来源
	 * @return
	 */
	public ReturnOrderItem selectItem(@Param("returnOrderID") int returnOrderID, @Param("sourceID") int sourceID);

	/**
	 * 删除退货订单中不在来源中的物品信息
	 * 
	 * @param returnOrderID
	 *            退货订单ID
	 * @param itemIDs
	 *            物品来源数组
	 * @return
	 */
	public Integer deleteItemNotIn(@Param("returnOrderID") Integer returnOrderID, @Param("itemIDs") Integer[] itemIDs);

	/**
	 * 更新退货申请物品信息
	 * 
	 * @param returnOrderID
	 *            退货订单ID
	 * @param status
	 *            状态
	 * @return
	 */
	public Integer updateRequestItemStatus(@Param("returnOrderID") Integer returnOrderID,
			@Param("status") Integer status);

	/**
	 * 查询退货订单物品信息
	 * 
	 * @param returnOrderID
	 *            退货订单ID
	 * @return
	 */
	public List<ReturnOrderItem> listOrderItem(Integer returnOrderID);

	/**
	 * 删除退货订单所有物品信息
	 * 
	 * @param returnOrderID
	 *            退货订单ID
	 * @return
	 */
	public Integer deleteOrderItem(Integer returnOrderID);
}